home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / Developer Essentials Jul 90 / Programming / MPW Interfaces & Libraries 3.1 / RIncludes / Pict.r < prev    next >
Encoding:
Text File  |  1989-10-13  |  47.9 KB  |  1,524 lines  |  [TEXT/MPS ]

  1. /*
  2.     Pict.r -- Type Declaration for Rez and DeRez
  3.     
  4.     Copyright Apple Computer, Inc. 1986-1989
  5.     All rights reserved.
  6.  
  7.     This PICT resource definition should probably used
  8.     for DeRez’ing purposes only.
  9.     
  10.     - Change history -
  11.     12/03/87    - THT: created.
  12.     03/20/89    - THT: added #ifndef __PICT.R__
  13. */
  14.  
  15. #ifndef __PICT.R__
  16. #define __PICT.R__
  17.  
  18. type 'PICT' {
  19.     startOfPict:
  20.         unsigned integer = (endOfPict - startOfPict) >> 3;
  21.         Rect;                                    /* Bounds of picture */
  22.         switch {
  23.             case VersionOne:
  24.                 key integer = $1101;
  25.                 array OpCodes {
  26.                     switch {
  27.                         case NOP:
  28.                             key byte = $00;
  29.  
  30.                         case clipRgn:
  31.                             key byte = $01;
  32.     clipRgnStart:            integer = (clipRgnEnd[$$ArrayIndex(OpCodes)] - clipRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  33.                             Rect;                /* region's enclosing rect */
  34.                             hex string [$$Word(clipRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  35.     clipRgnEnd:
  36.                         case bkPat:
  37.                             key byte = $02;
  38.                             hex string [8];
  39.                         
  40.                         case txFont:
  41.                             key byte = $03;
  42.                             integer;            /* font */
  43.                         
  44.                         case txFace:
  45.                             key byte = $04;
  46.                             unsigned hex byte;    /* text face */
  47.                         
  48.                         case txMode:
  49.                             key byte = $05;
  50.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  51.                                         notSrcCopy, notSrcOr, notSrcXor,
  52.                                         notSrcBic, patCopy, patOr, patXor,
  53.                                         patBic, notPatCopy, notPatOr, notPatBic;
  54.                         
  55.                         case spExtra:
  56.                             key byte = $06;
  57.                             unsigned hex longint;
  58.                         
  59.                         case pnSize:
  60.                             key byte = $07;
  61.                             Point;
  62.                         
  63.                         case pnMode:
  64.                             key byte = $08;
  65.                             unsigned hex integer;
  66.                         
  67.                         case pnPat:
  68.                             key byte = $09;
  69.                             hex string [8];
  70.                         
  71.                         case thePat:
  72.                             key byte = $0A;
  73.                             hex string [8];
  74.                         
  75.                         case ovSize:
  76.                             key byte = $0B;
  77.                             Point;
  78.                         
  79.                         case origin:
  80.                             key byte = $0C;
  81.                             integer;            /* dh */
  82.                             integer;            /* dv */
  83.                         
  84.                         case txSize:
  85.                             key byte = $0D;
  86.                             integer;
  87.                         
  88.                         case fgColor:
  89.                             key byte = $0E;
  90.                             longint;
  91.                         
  92.                         case bkColor:
  93.                             key byte = $0F;
  94.                             longint;
  95.                         
  96.                         case txRatio:
  97.                             key byte = $10;
  98.                             Point;                /* numer */
  99.                             Point;                /* denom */
  100.                         
  101.                         case picVersion:
  102.                             key byte = $11;
  103.                             byte;
  104.                         
  105.                         case line:
  106.                             key byte = $20;
  107.                             Point;                /* pnLoc */
  108.                             Point;                /* newPt */
  109.                         
  110.                         case lineFrom:
  111.                             key byte = $21;
  112.                             Point;                /* newPt */
  113.                         
  114.                         case shortLine:
  115.                             key byte = $22;
  116.                             Point;                /* pnLoc */
  117.                             byte;                /* dh */
  118.                             byte;                /* dv */
  119.                         
  120.                         case shortLineFrom:
  121.                             key byte = $23;
  122.                             byte;                /* dh */
  123.                             byte;                /* dv */
  124.                         
  125.                         case longText:
  126.                             key byte = $28;
  127.                             Point;                /* txLoc */
  128.                             pstring;
  129.                         
  130.                         case dhText:
  131.                             key byte = $29;
  132.                             byte;                /* dh */
  133.                             pstring;
  134.                             
  135.                         case dvText:
  136.                             key byte = $2A;
  137.                             byte;                /* dvh */
  138.                             pstring;
  139.                             
  140.                         case dhdvText:
  141.                             key byte = $2B;
  142.                             byte;                /* dh */
  143.                             byte;                /* dv */
  144.                             pstring;
  145.                             
  146.                         case frameRect:
  147.                             key byte = $30;
  148.                             Rect;
  149.                             
  150.                         case paintRect:
  151.                             key byte = $31;
  152.                             Rect;
  153.                             
  154.                         case eraseRect:
  155.                             key byte = $32;
  156.                             Rect;
  157.                             
  158.                         case invertRect:
  159.                             key byte = $33;
  160.                             Rect;
  161.                             
  162.                         case fillRect:
  163.                             key byte = $34;
  164.                             Rect;
  165.                         
  166.                         case frameSameRect:
  167.                             key byte = $38;
  168.                             
  169.                         case paintSameRect:
  170.                             key byte = $39;
  171.                             
  172.                         case eraseSameRect:
  173.                             key byte = $3A;
  174.                             
  175.                         case invertSameRect:
  176.                             key byte = $3B;
  177.                             
  178.                         case fillSameRect:
  179.                             key byte = $3C;
  180.                         
  181.                         case frameRRect:
  182.                             key byte = $40;
  183.                             Rect;
  184.                             
  185.                         case paintRRect:
  186.                             key byte = $41;
  187.                             Rect;
  188.                             
  189.                         case eraseRRect:
  190.                             key byte = $42;
  191.                             Rect;
  192.                             
  193.                         case invertRRect:
  194.                             key byte = $43;
  195.                             Rect;
  196.                             
  197.                         case fillRRect:
  198.                             key byte = $44;
  199.                             Rect;
  200.                             
  201.                         case frameSameRRect:
  202.                             key byte = $48;
  203.                             
  204.                         case paintSameRRect:
  205.                             key byte = $49;
  206.                             
  207.                         case eraseSameRRect:
  208.                             key byte = $4A;
  209.                             
  210.                         case invertSameRRect:
  211.                             key byte = $4B;
  212.                             
  213.                         case fillSameRRect:
  214.                             key byte = $4C;
  215.                             
  216.                         case frameOval:
  217.                             key byte = $50;
  218.                             Rect;
  219.                             
  220.                         case paintOval:
  221.                             key byte = $51;
  222.                             Rect;
  223.                             
  224.                         case eraseOval:
  225.                             key byte = $52;
  226.                             Rect;
  227.                             
  228.                         case invertOval:
  229.                             key byte = $53;
  230.                             Rect;
  231.                             
  232.                         case fillOval:
  233.                             key byte = $54;
  234.                             Rect;
  235.                         
  236.                         case frameSameOval:
  237.                             key byte = $58;
  238.                             
  239.                         case paintSameOval:
  240.                             key byte = $59;
  241.                             
  242.                         case eraseSameOval:
  243.                             key byte = $5A;
  244.                             
  245.                         case invertSameOval:
  246.                             key byte = $5B;
  247.                             
  248.                         case fillSameOval:
  249.                             key byte = $5C;
  250.                         
  251.                         case frameArc:
  252.                             key byte = $60;
  253.                             Rect;
  254.                             integer;                /* startAngle */
  255.                             integer;                /* arcAngle */
  256.                         
  257.                         case paintArc:
  258.                             key byte = $61;
  259.                             Rect;
  260.                             integer;                /* startAngle */
  261.                             integer;                /* arcAngle */
  262.                         
  263.                         case eraseArc:
  264.                             key byte = $62;
  265.                             Rect;
  266.                             integer;                /* startAngle */
  267.                             integer;                /* arcAngle */
  268.                         
  269.                         case invertArc:
  270.                             key byte = $63;
  271.                             Rect;
  272.                             integer;                /* startAngle */
  273.                             integer;                /* arcAngle */
  274.                         
  275.                         case fillArc:
  276.                             key byte = $64;
  277.                             Rect;
  278.                             integer;                /* startAngle */
  279.                             integer;                /* arcAngle */
  280.                         
  281.                         case frameSameArc:
  282.                             key byte = $68;
  283.                             integer;                /* startAngle */
  284.                             integer;                /* arcAngle */
  285.  
  286.                         case paintSameArc:
  287.                             key byte = $69;
  288.                             integer;                /* startAngle */
  289.                             integer;                /* arcAngle */
  290.  
  291.                         case eraseSameArc:
  292.                             key byte = $6A;
  293.                             integer;                /* startAngle */
  294.                             integer;                /* arcAngle */
  295.  
  296.                         case invertSameArc:
  297.                             key byte = $6B;
  298.                             integer;                /* startAngle */
  299.                             integer;                /* arcAngle */
  300.  
  301.                         case fillSameArc:
  302.                             key byte = $6C;
  303.                             integer;                /* startAngle */
  304.                             integer;                /* arcAngle */
  305.                         
  306.                         case framePoly:
  307.                             key byte = $70;
  308.                             integer = $$CountOf(framePoly) * 4 + 10;
  309.                             Rect;                    /* enclosing rectangle */
  310.                             array framePoly {
  311.                                 Point;
  312.                             };
  313.                         
  314.                         case paintPoly:
  315.                             key byte = $71;
  316.                             integer = $$CountOf(framePoly) * 4 + 10;
  317.                             Rect;                    /* enclosing rectangle */
  318.                             array framePoly {
  319.                                 Point;
  320.                             };
  321.                         
  322.                         case erasePoly:
  323.                             key byte = $72;
  324.                             integer = $$CountOf(framePoly) * 4 + 10;
  325.                             Rect;                    /* enclosing rectangle */
  326.                             array framePoly {
  327.                                 Point;
  328.                             };
  329.                         
  330.                         case invertPoly:
  331.                             key byte = $73;
  332.                             integer = $$CountOf(framePoly) * 4 + 10;
  333.                             Rect;                    /* enclosing rectangle */
  334.                             array framePoly {
  335.                                 Point;
  336.                             };
  337.                         
  338.                         case fillPoly:
  339.                             key byte = $74;
  340.                             integer = $$CountOf(framePoly) * 4 + 10;
  341.                             Rect;                    /* enclosing rectangle */
  342.                             array framePoly {
  343.                                 Point;
  344.                             };
  345.                         
  346.                         case frameSamePoly:
  347.                             key byte = $78;
  348.     
  349.                         case paintSamePoly:
  350.                             key byte = $79;
  351.     
  352.                         case eraseSamePoly:
  353.                             key byte = $7A;
  354.     
  355.                         case invertSamePoly:
  356.                             key byte = $7B;
  357.     
  358.                         case fillSamePoly:
  359.                             key byte = $7C;
  360.     
  361.                         case frameRgn:
  362.                             key byte = $80;
  363.     frameRgnStart:            integer = (frameRgnEnd[$$ArrayIndex(OpCodes)] - frameRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  364.                             Rect;                /* region's enclosing rect */
  365.                             hex string [$$Word(frameRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  366.     frameRgnEnd:
  367.                         case paintRgn:
  368.                             key byte = $81;
  369.     paintRgnStart:            integer = (paintRgnEnd[$$ArrayIndex(OpCodes)] - paintRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  370.                             Rect;                /* region's enclosing rect */
  371.                             hex string [$$Word(paintRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  372.     paintRgnEnd:
  373.                         case eraseRgn:
  374.                             key byte = $82;
  375.     eraseRgnStart:            integer = (eraseRgnEnd[$$ArrayIndex(OpCodes)] - eraseRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  376.                             Rect;                /* region's enclosing rect */
  377.                             hex string [$$Word(eraseRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  378.     eraseRgnEnd:
  379.                         case invertRgn:
  380.                             key byte = $83;
  381.     invertRgnStart:            integer = (invertRgnEnd[$$ArrayIndex(OpCodes)] - invertRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  382.                             Rect;                /* region's enclosing rect */
  383.                             hex string [$$Word(invertRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  384.     invertRgnEnd:
  385.                         case fillRgn:
  386.                             key byte = $84;
  387.     fillRgnStart:            integer = (fillRgnEnd[$$ArrayIndex(OpCodes)] - fillRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  388.                             Rect;                /* region's enclosing rect */
  389.                             hex string [$$Word(fillRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  390.     fillRgnEnd:
  391.                         case frameSameRgn:
  392.                             key byte = $88;
  393.  
  394.                         case paintSameRgn:
  395.                             key byte = $89;
  396.  
  397.                         case eraseSameRgn:
  398.                             key byte = $8A;
  399.  
  400.                         case invertSameRgn:
  401.                             key byte = $8B;
  402.  
  403.                         case fillSameRgn:
  404.                             key byte = $8C;
  405.  
  406.                         case bitsRect:
  407.                             key byte = $90;
  408.     BitsRectRowBytes:        integer;                    /* row bytes */
  409.     BitsRectBounds:            Rect;                        /* bounds */
  410.                             Rect;                        /* srcRect */
  411.                             Rect;                        /* destRect */
  412.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  413.                                         notSrcCopy, notSrcOr, notSrcXor,
  414.                                         notSrcBic, patCopy, patOr, patXor,
  415.                                         patBic, notPatCopy, notPatOr, notPatBic;
  416.                             hex string [($$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  417.                                         - $$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],0,16))
  418.                                         * $$Word(BitsRectRowBytes[$$ArrayIndex(OpCodes)])];
  419.  
  420.                         case bitsRgn:
  421.                             key byte = $91;
  422.     BitsRgnRowBytes:        integer;                    /* row bytes */
  423.     BitsRgnBounds:            Rect;                        /* bounds */
  424.                             Rect;                        /* srcRect */
  425.                             Rect;                        /* destRect */
  426.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  427.                                         notSrcCopy, notSrcOr, notSrcXor,
  428.                                         notSrcBic, patCopy, patOr, patXor,
  429.                                         patBic, notPatCopy, notPatOr, notPatBic;
  430.     bitsRgnStart:            integer = (bitsRgnEnd[$$ArrayIndex(OpCodes)] - bitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  431.                             Rect;                /* region's enclosing rect */
  432.                             hex string [$$Word(bitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  433.     bitsRgnEnd:
  434.                             hex string [($$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  435.                                         - $$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],0,16))
  436.                                         * $$Word(BitsRgnRowBytes[$$ArrayIndex(OpCodes)])];
  437.  
  438.                         case packBitsRect:
  439.                             key byte = $98;
  440.     PackBitsRectRowBytes:    integer;                    /* row bytes */
  441.     PackBitsRectBounds:        Rect;                        /* bounds */
  442.                             Rect;                        /* srcRect */
  443.                             Rect;                        /* destRect */
  444.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  445.                                         notSrcCopy, notSrcOr, notSrcXor,
  446.                                         notSrcBic, patCopy, patOr, patXor,
  447.                                         patBic, notPatCopy, notPatOr, notPatBic;
  448.     PackBitsBits:            hex string [$$PackedSize(PackBitsBits[$$ArrayIndex(OpCodes)],
  449.                                         $$Word(PackBitsRectRowBytes[$$ArrayIndex(OpCodes)]),
  450.                                         ($$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  451.                                         - $$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],0,16)))];
  452.  
  453.                         case packBitsRgn:
  454.                             key byte = $99;
  455.     packBitsRgnRowBytes:    integer;                    /* row bytes */
  456.     packBitsRgnBounds:        Rect;                        /* bounds */
  457.                             Rect;                        /* srcRect */
  458.                             Rect;                        /* destRect */
  459.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  460.                                         notSrcCopy, notSrcOr, notSrcXor,
  461.                                         notSrcBic, patCopy, patOr, patXor,
  462.                                         patBic, notPatCopy, notPatOr, notPatBic;
  463.     packBitsRgnStart:        integer = (packBitsRgnEnd[$$ArrayIndex(OpCodes)] - packBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  464.                             Rect;                /* region's enclosing rect */
  465.                             hex string [$$Word(packBitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  466.     packBitsRgnEnd:            hex string [$$PackedSize(packBitsRgnEnd[$$ArrayIndex(OpCodes)],
  467.                                         $$Word(packBitsRgnRowBytes[$$ArrayIndex(OpCodes)]),
  468.                                         ($$BitField(packBitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  469.                                         - $$BitField(packBitsRgnBounds[$$ArrayIndex(OpCodes)],0,16)))];
  470.     
  471.                         case shortComment:
  472.                             key byte = $A0;
  473.                             integer;            /* kind */
  474.  
  475.                         case longComment:
  476.                             key byte = $A1;
  477.                             integer;            /* kind */
  478.     longCommentStart:        integer = (longCommentEnd[$$ArrayIndex(OpCodes)] - longCommentStart[$$ArrayIndex(OpCodes)] - 16) >> 3;
  479.                             hex string [$$Word(longCommentStart[$$ArrayIndex(OpCodes)])];
  480.     longCommentEnd:
  481.                     };
  482.                 };
  483.                 byte = $FF;     /* End of picture */
  484.                 
  485.             case VersionTwo:
  486.                 key longint = $001102ff;        /* Version op + version */
  487.                 array OpCodes {
  488.                     switch {
  489.                         case Clip:
  490.                             key integer = $0001;
  491.     ClipStart:                integer = (ClipEnd[$$ArrayIndex(OpCodes)] - ClipStart[$$ArrayIndex(OpCodes)]) >> 3;
  492.                             Rect;                /* region's enclosing rect */
  493.                             hex string [$$Word(ClipStart[$$ArrayIndex(OpCodes)]) - 10];
  494.     ClipEnd:
  495.                         case BkPat:
  496.                             key integer = $0002;
  497.                             hex string [8];
  498.                         
  499.                         case TxFont:
  500.                             key integer = $0003;
  501.                             integer;            /* font */
  502.                         
  503.                         case TxFace:
  504.                             key integer = $0004;
  505.                             unsigned hex byte;    /* text face */
  506.                         
  507.                         case TxMode:
  508.                             key integer = $0005;
  509.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  510.                                         notSrcCopy, notSrcOr, notSrcXor,
  511.                                         notSrcBic, patCopy, patOr, patXor,
  512.                                         patBic, notPatCopy, notPatOr, notPatBic;
  513.                         
  514.                         case SpExtra:
  515.                             key integer = $0006;
  516.                             unsigned hex longint;
  517.                         
  518.                         case PnSize:
  519.                             key integer = $0007;
  520.                             Point;
  521.                         
  522.                         case PnMode:
  523.                             key integer = $0008;
  524.                             unsigned hex integer;
  525.                         
  526.                         case PnPat:
  527.                             key integer = $0009;
  528.                             hex string [8];
  529.                         
  530.                         case FillPat:
  531.                             key integer = $000A;
  532.                             hex string [8];
  533.                         
  534.                         case OvSize:
  535.                             key integer = $000B;
  536.                             Point;
  537.                         
  538.                         case Origin:
  539.                             key integer = $000C;
  540.                             integer;            /* dh */
  541.                             integer;            /* dv */
  542.                         
  543.                         case TxSize:
  544.                             key integer = $000D;
  545.                             integer;
  546.                         
  547.                         case FgColor:
  548.                             key integer = $000E;
  549.                             longint;
  550.                         
  551.                         case BkColor:
  552.                             key integer = $000F;
  553.                             longint;
  554.                         
  555.                         case TxRatio:
  556.                             key integer = $0010;
  557.                             Point;                /* numer */
  558.                             Point;                /* denom */
  559.                         
  560.                         case Version:
  561.                             key integer = $0011;
  562.                             byte;
  563.  
  564.                         case BkPixPat:
  565.                             key integer = $0012;
  566.                             switch {
  567.                                 case newPattern:
  568.                                     key integer = 1;
  569.                                     hex string [8];            /* old-style pattern    */
  570.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  571.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  572.     BkPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  573.     BkPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  574.                                     integer;                                                /* pixMap vers number    */
  575.                                     integer    unpacked;                                        /* Packing format        */
  576.                                     unsigned longint;                                        /* Size of pixel data    */
  577.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  578.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  579.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  580.                                     integer;                                                /* # bits in pixel        */
  581.                                     integer;                                                /* # components in pixel*/
  582.                                     integer;                                                /* # bits per field        */
  583.                                     unsigned longint;                                        /* Offset to next plane    */
  584.                                     unsigned longint;                                        /* Offset to color table*/
  585.                                     fill long;                                                /* Reserved                */
  586.                                     /* Color Table */
  587.                                     unsigned hex longint;                                    /* ctSeed                */
  588.                                     integer;                                                /* ctFlags                */
  589.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  590.                                     wide array ColorSpec {
  591.                                             integer;                                        /* value                */
  592.                                             unsigned integer;                                /* RGB:    red                */
  593.                                             unsigned integer;                                /*        green            */
  594.                                             unsigned integer;                                /*        blue            */
  595.                                     };
  596.                                     /* If rowBytes < 8 then data is unpacked,
  597.                                        if >= 8, then data is packed */
  598.     BkPixPatBits:                    hex string [($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  599.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  600.                                                 ($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  601.                                                 $$PackedSize(BkPixPatBits[$$ArrayIndex(OpCodes)],
  602.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  603.                                                 ($$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  604.                                                 - $$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  605.                                 
  606.                                 case ditherPattern:
  607.                                     key integer = 2;
  608.                                     hex string [8];            /* old-style pattern    */
  609.                                     unsigned integer;        /* RGB:    red                */
  610.                                     unsigned integer;        /*        green            */
  611.                                     unsigned integer;        /*        blue            */
  612.                             };
  613.  
  614.                         case PnPixPat:
  615.                             key integer = $0013;
  616.                             switch {
  617.                                 case newPattern:
  618.                                     key integer = 1;
  619.                                     hex string [8];            /* old-style pattern    */
  620.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  621.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  622.     PnPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  623.     PnPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  624.                                     integer;                                                /* pixMap vers number    */
  625.                                     integer    unpacked;                                        /* Packing format        */
  626.                                     unsigned longint;                                        /* Size of pixel data    */
  627.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  628.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  629.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  630.                                     integer;                                                /* # bits in pixel        */
  631.                                     integer;                                                /* # components in pixel*/
  632.                                     integer;                                                /* # bits per field        */
  633.                                     unsigned longint;                                        /* Offset to next plane    */
  634.                                     unsigned longint;                                        /* Offset to color table*/
  635.                                     fill long;                                                /* Reserved                */
  636.                                     /* Color Table */
  637.                                     unsigned hex longint;                                    /* ctSeed                */
  638.                                     integer;                                                /* ctFlags                */
  639.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  640.                                     wide array ColorSpec {
  641.                                             integer;                                        /* value                */
  642.                                             unsigned integer;                                /* RGB:    red                */
  643.                                             unsigned integer;                                /*        green            */
  644.                                             unsigned integer;                                /*        blue            */
  645.                                     };
  646.                                     /* If rowBytes < 8 then data is unpacked,
  647.                                        if >= 8, then data is packed */
  648.     PnPixPatBits:                    hex string [($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  649.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  650.                                                 ($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  651.                                                 $$PackedSize(PnPixPatBits[$$ArrayIndex(OpCodes)],
  652.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  653.                                                 ($$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  654.                                                 - $$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  655.                                 
  656.                                 case ditherPattern:
  657.                                     key integer = 2;
  658.                                     hex string [8];            /* old-style pattern    */
  659.                                     unsigned integer;        /* RGB:    red                */
  660.                                     unsigned integer;        /*        green            */
  661.                                     unsigned integer;        /*        blue            */
  662.                             };
  663.  
  664.                         case FillPixPat:
  665.                             key integer = $0014;
  666.                             switch {
  667.                                 case newPattern:
  668.                                     key integer = 1;
  669.                                     hex string [8];            /* old-style pattern    */
  670.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  671.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  672.     FillPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  673.     FillPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  674.                                     integer;                                                /* pixMap vers number    */
  675.                                     integer    unpacked;                                        /* Packing format        */
  676.                                     unsigned longint;                                        /* Size of pixel data    */
  677.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  678.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  679.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  680.                                     integer;                                                /* # bits in pixel        */
  681.                                     integer;                                                /* # components in pixel*/
  682.                                     integer;                                                /* # bits per field        */
  683.                                     unsigned longint;                                        /* Offset to next plane    */
  684.                                     unsigned longint;                                        /* Offset to color table*/
  685.                                     fill long;                                                /* Reserved                */
  686.                                     /* Color Table */
  687.                                     unsigned hex longint;                                    /* ctSeed                */
  688.                                     integer;                                                /* ctFlags                */
  689.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  690.                                     wide array ColorSpec {
  691.                                             integer;                                        /* value                */
  692.                                             unsigned integer;                                /* RGB:    red                */
  693.                                             unsigned integer;                                /*        green            */
  694.                                             unsigned integer;                                /*        blue            */
  695.                                     };
  696.                                     /* If rowBytes < 8 then data is unpacked,
  697.                                        if >= 8, then data is packed */
  698.     FillPixPatBits:                    hex string [($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  699.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  700.                                                 ($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  701.                                                 $$PackedSize(FillPixPatBits[$$ArrayIndex(OpCodes)],
  702.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  703.                                                 ($$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  704.                                                 - $$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  705.                                 
  706.                                 case ditherPattern:
  707.                                     key integer = 2;
  708.                                     hex string [8];            /* old-style pattern    */
  709.                                     unsigned integer;        /* RGB:    red                */
  710.                                     unsigned integer;        /*        green            */
  711.                                     unsigned integer;        /*        blue            */
  712.                             };
  713.                         
  714.                         case PnLocHFrac:
  715.                             key integer = $0015;
  716.                             unsigned hex integer;
  717.                         
  718.                         case ChExtra:
  719.                             key integer = $0016;
  720.                             integer;                        /* extra for each character */
  721.                         
  722.                         case AppleReserved0017:
  723.                             key integer = $0017;
  724.                             
  725.                         case AppleReserved0018:
  726.                             key integer = $0018;
  727.                             
  728.                         case AppleReserved0019:
  729.                             key integer = $0019;
  730.                         
  731.                         case RGBFgCol:
  732.                             key integer = $001A;
  733.                             unsigned integer;        /* RGB:    red                */
  734.                             unsigned integer;        /*        green            */
  735.                             unsigned integer;        /*        blue            */
  736.                             
  737.                         case RGBBkCol:
  738.                             key integer = $001B;
  739.                             unsigned integer;        /* RGB:    red                */
  740.                             unsigned integer;        /*        green            */
  741.                             unsigned integer;        /*        blue            */
  742.                             
  743.                         case HiliteMode:
  744.                             key integer = $001C;
  745.                         
  746.                         case HiliteColor:
  747.                             key integer = $001D;
  748.                             unsigned integer;        /* RGB:    red                */
  749.                             unsigned integer;        /*        green            */
  750.                             unsigned integer;        /*        blue            */
  751.                         
  752.                         case DefHilite:
  753.                             key integer = $001E;
  754.                         
  755.                         case OpColor:
  756.                             key integer = $001F;
  757.                             unsigned integer;        /* RGB:    red                */
  758.                             unsigned integer;        /*        green            */
  759.                             unsigned integer;        /*        blue            */
  760.                         
  761.                         case Line:
  762.                             key integer = $0020;
  763.                             Point;                    /* pnLoc */
  764.                             Point;                    /* newPt */
  765.                             
  766.                         case LineFrom:
  767.                             key integer = $0021;
  768.                             Point;                    /* newPt */
  769.                         
  770.                         case ShortLine:
  771.                             key integer = $0022;
  772.                             Point;                    /* pnLoc */
  773.                             byte;                    /* dh */
  774.                             byte;                    /* dv */
  775.                         
  776.                         case ShortLineFrom:
  777.                             key integer = $0023;
  778.                             byte;                    /* dh */
  779.                             byte;                    /* dv */
  780.                         
  781.                         case AppleReserved0024:
  782.                             key integer = $0024;
  783.                 AR24:        unsigned integer = (AR24End - AR24) / 8 - 2;
  784.                             hex string [$$Word(AR24)];
  785.                 AR24End:
  786.                         
  787.                         case AppleReserved0025:
  788.                             key integer = $0025;
  789.                 AR25:        unsigned integer = (AR25End - AR25) / 8 - 2;
  790.                             hex string [$$Word(AR25)];
  791.                 AR25End:
  792.                         
  793.                         case AppleReserved0026:
  794.                             key integer = $0026;
  795.                 AR26:        unsigned integer = (AR26End - AR26) / 8 - 2;
  796.                             hex string [$$Word(AR26)];
  797.                 AR26End:
  798.                         
  799.                         case AppleReserved0027:
  800.                             key integer = $0027;
  801.                 AR27:        unsigned integer = (AR27End - AR27) / 8 - 2;
  802.                             hex string [$$Word(AR27)];
  803.                 AR27End:
  804.                         
  805.                         case LongText:
  806.                             key integer = $0028;
  807.                             Point;                /* txLoc */
  808.                             pstring;            /* text */
  809.                         
  810.                         case DHText:
  811.                             key integer = $0029;
  812.                             byte;                /* dh */
  813.                             pstring;            /* text */
  814.  
  815.                         case DVText:
  816.                             key integer = $002A;
  817.                             byte;                /* dv */
  818.                             pstring;            /* text */
  819.  
  820.                         case DHDVText:
  821.                             key integer = $002A;
  822.                             byte;                /* dh */
  823.                             byte;                /* dv */
  824.                             pstring;            /* text */
  825.  
  826.                         case AppleReserved002C:
  827.                             key integer = $002C;
  828.                 AR2C:        unsigned integer = (AR2CEnd - AR2C) / 8 - 2;
  829.                             hex string [$$Word(AR2C)];
  830.                 AR2CEnd:
  831.                         
  832.                         case AppleReserved002D:
  833.                             key integer = $002D;
  834.                 AR2D:        unsigned integer = (AR2DEnd - AR2D) / 8 - 2;
  835.                             hex string [$$Word(AR2D)];
  836.                 AR2DEnd:
  837.                         
  838.                         case AppleReserved002E:
  839.                             key integer = $002E;
  840.                 AR2E:        unsigned integer = (AR2EEnd - AR2E) / 8 - 2;
  841.                             hex string [$$Word(AR2E)];
  842.                 AR2EEnd:
  843.                         
  844.                         case AppleReserved002F:
  845.                             key integer = $002F;
  846.                 AR2F:        unsigned integer = (AR2FEnd - AR2F) / 8 - 2;
  847.                             hex string [$$Word(AR2F)];
  848.                 AR2FEnd:
  849.                         
  850.                         case FrameRect:
  851.                             key integer = $0030;
  852.                             Rect;
  853.                             
  854.                         case PaintRect:
  855.                             key integer = $0031;
  856.                             Rect;
  857.                             
  858.                         case EraseRect:
  859.                             key integer = $0032;
  860.                             Rect;
  861.                             
  862.                         case InvertRect:
  863.                             key integer = $0033;
  864.                             Rect;
  865.                             
  866.                         case FillRect:
  867.                             key integer = $0034;
  868.                             Rect;
  869.                             
  870.                         case AppleReserved0035:
  871.                             key integer = $0035;
  872.                             Rect;
  873.                             
  874.                         case AppleReserved0036:
  875.                             key integer = $0036;
  876.                             Rect;
  877.                             
  878.                         case AppleReserved0037:
  879.                             key integer = $0037;
  880.                             Rect;
  881.                         
  882.                         case FrameSameRect:
  883.                             key integer = $0038;
  884.                         
  885.                         case PaintSameRect:
  886.                             key integer = $0039;
  887.                         
  888.                         case EraseSameRect:
  889.                             key integer = $003A;
  890.                         
  891.                         case InvertSameRect:
  892.                             key integer = $003B;
  893.                         
  894.                         case FillSameRect:
  895.                             key integer = $003C;
  896.                         
  897.                         case AppleReserved003D:
  898.                             key integer = $003D;
  899.                         
  900.                         case AppleReserved003E:
  901.                             key integer = $003E;
  902.                         
  903.                         case AppleReserved003F:
  904.                             key integer = $003F;
  905.                         
  906.                         case FrameRRect:
  907.                             key integer = $0040;
  908.                             Rect;
  909.                             
  910.                         case PaintRRect:
  911.                             key integer = $0041;
  912.                             Rect;
  913.                             
  914.                         case EraseRRect:
  915.                             key integer = $0042;
  916.                             Rect;
  917.                             
  918.                         case InvertRRect:
  919.                             key integer = $0043;
  920.                             Rect;
  921.                             
  922.                         case FillRRect:
  923.                             key integer = $0044;
  924.                             Rect;
  925.                             
  926.                         case AppleReserved0045:
  927.                             key integer = $0045;
  928.                             Rect;
  929.                             
  930.                         case AppleReserved0046:
  931.                             key integer = $0046;
  932.                             Rect;
  933.                             
  934.                         case AppleReserved0047:
  935.                             key integer = $0047;
  936.                             Rect;
  937.                         
  938.                         case FrameSameRRect:
  939.                             key integer = $0048;
  940.                         
  941.                         case PaintSameRRect:
  942.                             key integer = $0049;
  943.                         
  944.                         case EraseSameRRect:
  945.                             key integer = $004A;
  946.                         
  947.                         case InvertSameRRect:
  948.                             key integer = $004B;
  949.                         
  950.                         case FillSameRRect:
  951.                             key integer = $004C;
  952.                         
  953.                         case AppleReserved004D:
  954.                             key integer = $004D;
  955.                         
  956.                         case AppleReserved004E:
  957.                             key integer = $004E;
  958.                         
  959.                         case AppleReserved004F:
  960.                             key integer = $004F;
  961.                         
  962.                         case FrameOval:
  963.                             key integer = $0050;
  964.                             Rect;
  965.                             
  966.                         case PaintOval:
  967.                             key integer = $0051;
  968.                             Rect;
  969.                             
  970.                         case EraseOval:
  971.                             key integer = $0052;
  972.                             Rect;
  973.                             
  974.                         case InvertOval:
  975.                             key integer = $0053;
  976.                             Rect;
  977.                             
  978.                         case FillOval:
  979.                             key integer = $0054;
  980.                             Rect;
  981.                             
  982.                         case AppleReserved0055:
  983.                             key integer = $0055;
  984.                             Rect;
  985.                             
  986.                         case AppleReserved0056:
  987.                             key integer = $0056;
  988.                             Rect;
  989.                             
  990.                         case AppleReserved0057:
  991.                             key integer = $0057;
  992.                             Rect;
  993.                         
  994.                         case FrameSameOval:
  995.                             key integer = $0058;
  996.                         
  997.                         case PaintSameOval:
  998.                             key integer = $0059;
  999.                         
  1000.                         case EraseSameOval:
  1001.                             key integer = $005A;
  1002.                         
  1003.                         case InvertSameOval:
  1004.                             key integer = $005B;
  1005.                         
  1006.                         case FillSameOval:
  1007.                             key integer = $005C;
  1008.                         
  1009.                         case AppleReserved005D:
  1010.                             key integer = $005D;
  1011.                         
  1012.                         case AppleReserved005E:
  1013.                             key integer = $005E;
  1014.                         
  1015.                         case frameArc:
  1016.                             key integer = $0060;
  1017.                             Rect;
  1018.                             integer;                /* startAngle */
  1019.                             integer;                /* arcAngle */
  1020.                         
  1021.                         case paintArc:
  1022.                             key integer = $0061;
  1023.                             Rect;
  1024.                             integer;                /* startAngle */
  1025.                             integer;                /* arcAngle */
  1026.                         
  1027.                         case eraseArc:
  1028.                             key integer = $0062;
  1029.                             Rect;
  1030.                             integer;                /* startAngle */
  1031.                             integer;                /* arcAngle */
  1032.                         
  1033.                         case invertArc:
  1034.                             key integer = $0063;
  1035.                             Rect;
  1036.                             integer;                /* startAngle */
  1037.                             integer;                /* arcAngle */
  1038.                         
  1039.                         case fillArc:
  1040.                             key integer = $0064;
  1041.                             Rect;
  1042.                             integer;                /* startAngle */
  1043.                             integer;                /* arcAngle */
  1044.                         
  1045.                         case AppleReserved0065:
  1046.                             key integer = $0065;
  1047.                             Rect;
  1048.                             integer;                /* startAngle */
  1049.                             integer;                /* arcAngle */
  1050.                         
  1051.                         case AppleReserved0066:
  1052.                             key integer = $0066;
  1053.                             Rect;
  1054.                             integer;                /* startAngle */
  1055.                             integer;                /* arcAngle */
  1056.                         
  1057.                         case AppleReserved0067:
  1058.                             key integer = $0067;
  1059.                             Rect;
  1060.                             integer;                /* startAngle */
  1061.                             integer;                /* arcAngle */
  1062.                         
  1063.                         case frameSameArc:
  1064.                             key integer = $0068;
  1065.                             integer;                /* startAngle */
  1066.                             integer;                /* arcAngle */
  1067.  
  1068.                         case paintSameArc:
  1069.                             key integer = $0069;
  1070.                             integer;                /* startAngle */
  1071.                             integer;                /* arcAngle */
  1072.  
  1073.                         case eraseSameArc:
  1074.                             key integer = $006A;
  1075.                             integer;                /* startAngle */
  1076.                             integer;                /* arcAngle */
  1077.  
  1078.                         case invertSameArc:
  1079.                             key integer = $006B;
  1080.                             integer;                /* startAngle */
  1081.                             integer;                /* arcAngle */
  1082.  
  1083.                         case fillSameArc:
  1084.                             key integer = $006C;
  1085.                             integer;                /* startAngle */
  1086.                             integer;                /* arcAngle */
  1087.                         
  1088.                         case AppleReserved006D:
  1089.                             key integer = $006D;
  1090.                             integer;                /* startAngle */
  1091.                             integer;                /* arcAngle */
  1092.                         
  1093.                         case AppleReserved006E:
  1094.                             key integer = $006E;
  1095.                             integer;                /* startAngle */
  1096.                             integer;                /* arcAngle */
  1097.                         
  1098.                         case AppleReserved006F:
  1099.                             key integer = $006F;
  1100.                             integer;                /* startAngle */
  1101.                             integer;                /* arcAngle */
  1102.                         
  1103.                         case framePoly:
  1104.                             key integer = $0070;
  1105.                             integer = $$CountOf(framePoly) * 4 + 10;
  1106.                             Rect;                    /* enclosing rectangle */
  1107.                             array framePoly {
  1108.                                 Point;
  1109.                             };
  1110.                         
  1111.                         case paintPoly:
  1112.                             key integer = $0071;
  1113.                             integer = $$CountOf(framePoly) * 4 + 10;
  1114.                             Rect;                    /* enclosing rectangle */
  1115.                             array framePoly {
  1116.                                 Point;
  1117.                             };
  1118.                         
  1119.                         case erasePoly:
  1120.                             key integer = $0072;
  1121.                             integer = $$CountOf(framePoly) * 4 + 10;
  1122.                             Rect;                    /* enclosing rectangle */
  1123.                             array framePoly {
  1124.                                 Point;
  1125.                             };
  1126.                         
  1127.                         case invertPoly:
  1128.                             key integer = $0073;
  1129.                             integer = $$CountOf(framePoly) * 4 + 10;
  1130.                             Rect;                    /* enclosing rectangle */
  1131.                             array framePoly {
  1132.                                 Point;
  1133.                             };
  1134.                         
  1135.                         case fillPoly:
  1136.                             key integer = $0074;
  1137.                             integer = $$CountOf(framePoly) * 4 + 10;
  1138.                             Rect;                    /* enclosing rectangle */
  1139.                             array framePoly {
  1140.                                 Point;
  1141.                             };
  1142.                         
  1143.                         case AppleReserved0075:
  1144.                             key integer = $0075;
  1145.                             integer = $$CountOf(framePoly) * 4 + 10;
  1146.                             Rect;                    /* enclosing rectangle */
  1147.                             array framePoly {
  1148.                                 Point;
  1149.                             };
  1150.                         
  1151.                         case AppleReserved0076:
  1152.                             key integer = $0076;
  1153.                             integer = $$CountOf(framePoly) * 4 + 10;
  1154.                             Rect;                    /* enclosing rectangle */
  1155.                             array framePoly {
  1156.                                 Point;
  1157.                             };
  1158.                         
  1159.                         case AppleReserved0077:
  1160.                             key integer = $0077;
  1161.                             integer = $$CountOf(framePoly) * 4 + 10;
  1162.                             Rect;                    /* enclosing rectangle */
  1163.                             array framePoly {
  1164.                                 Point;
  1165.                             };
  1166.                         
  1167.                         case frameSamePoly:
  1168.                             key integer = $0078;
  1169.     
  1170.                         case paintSamePoly:
  1171.                             key integer = $0079;
  1172.     
  1173.                         case eraseSamePoly:
  1174.                             key integer = $007A;
  1175.     
  1176.                         case invertSamePoly:
  1177.                             key integer = $007B;
  1178.     
  1179.                         case fillSamePoly:
  1180.                             key integer = $007C;
  1181.     
  1182.                         case AppleReserved007D:
  1183.                             key integer = $007D;
  1184.     
  1185.                         case AppleReserved007E:
  1186.                             key integer = $007E;
  1187.     
  1188.                         case AppleReserved007F:
  1189.                             key integer = $007F;
  1190.     
  1191.                         case frameRgn:
  1192.                             key integer = $0080;
  1193.     frameRgnStart2:            integer = (frameRgnEnd2[$$ArrayIndex(OpCodes)] - frameRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1194.                             Rect;                /* region's enclosing rect */
  1195.                             hex string [$$Word(frameRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1196.     frameRgnEnd2:
  1197.                         case paintRgn:
  1198.                             key integer = $0081;
  1199.     paintRgnStart2:            integer = (paintRgnEnd2[$$ArrayIndex(OpCodes)] - paintRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1200.                             Rect;                /* region's enclosing rect */
  1201.                             hex string [$$Word(paintRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1202.     paintRgnEnd2:
  1203.                         case eraseRgn:
  1204.                             key integer = $0082;
  1205.     eraseRgnStart2:            integer = (eraseRgnEnd2[$$ArrayIndex(OpCodes)] - eraseRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1206.                             Rect;                /* region's enclosing rect */
  1207.                             hex string [$$Word(eraseRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1208.     eraseRgnEnd2:
  1209.                         case invertRgn:
  1210.                             key integer = $0083;
  1211.     invertRgnStart2:        integer = (invertRgnEnd2[$$ArrayIndex(OpCodes)] - invertRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1212.                             Rect;                /* region's enclosing rect */
  1213.                             hex string [$$Word(invertRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1214.     invertRgnEnd2:
  1215.                         case fillRgn:
  1216.                             key integer = $0084;
  1217.     fillRgnStart2:            integer = (fillRgnEnd2[$$ArrayIndex(OpCodes)] - fillRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1218.                             Rect;                /* region's enclosing rect */
  1219.                             hex string [$$Word(fillRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1220.     fillRgnEnd2:
  1221.                         case AppleReserved0085:
  1222.                             key integer = $0085;
  1223.     AppleReserved0085Start:integer = (AppleReserved0085End[$$ArrayIndex(OpCodes)] - AppleReserved0085Start[$$ArrayIndex(OpCodes)]) >> 3;
  1224.                             Rect;                /* region's enclosing rect */
  1225.                             hex string [$$Word(AppleReserved0085Start[$$ArrayIndex(OpCodes)]) - 10];
  1226.     AppleReserved0085End:
  1227.                         case AppleReserved0086:
  1228.                             key integer = $0086;
  1229.     AppleReserved0086Start:    integer = (AppleReserved0086End[$$ArrayIndex(OpCodes)] - AppleReserved0086Start[$$ArrayIndex(OpCodes)]) >> 3;
  1230.                             Rect;                /* region's enclosing rect */
  1231.                             hex string [$$Word(AppleReserved0086Start[$$ArrayIndex(OpCodes)]) - 10];
  1232.     AppleReserved0086End:
  1233.                         case AppleReserved0087:
  1234.                             key integer = $0087;
  1235.     AppleReserved0087Start:    integer = (AppleReserved0087End[$$ArrayIndex(OpCodes)] - AppleReserved0087Start[$$ArrayIndex(OpCodes)]) >> 3;
  1236.                             Rect;                /* region's enclosing rect */
  1237.                             hex string [$$Word(AppleReserved0087Start[$$ArrayIndex(OpCodes)]) - 10];
  1238.     AppleReserved0087End:
  1239.                         case frameSameRgn:
  1240.                             key integer = $0088;
  1241.  
  1242.                         case paintSameRgn:
  1243.                             key integer = $0089;
  1244.  
  1245.                         case eraseSameRgn:
  1246.                             key integer = $008A;
  1247.  
  1248.                         case invertSameRgn:
  1249.                             key integer = $008B;
  1250.  
  1251.                         case fillSameRgn:
  1252.                             key integer = $008C;
  1253.  
  1254.                         case AppleReserved008D:
  1255.                             key integer = $008D;
  1256.  
  1257.                         case AppleReserved008E:
  1258.                             key integer = $008E;
  1259.  
  1260.                         case AppleReserved008F:
  1261.                             key integer = $008F;
  1262.  
  1263.                         case BitsRect:
  1264.                             key integer = $0090;
  1265.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1266.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1267.     BitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1268.     BitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1269.                             integer;                                                /* pixMap vers number    */
  1270.                             integer    unpacked;                                        /* Packing format        */
  1271.                             unsigned longint;                                        /* Size of pixel data    */
  1272.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1273.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1274.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1275.                             integer;                                                /* # bits in pixel        */
  1276.                             integer;                                                /* # components in pixel*/
  1277.                             integer;                                                /* # bits per field        */
  1278.                             unsigned longint;                                        /* Offset to next plane    */
  1279.                             unsigned longint;                                        /* Offset to color table*/
  1280.                             fill long;                                                /* Reserved                */
  1281.                             /* Color Table */
  1282.                             unsigned hex longint;                                    /* ctSeed                */
  1283.                             integer;                                                /* ctFlags                */
  1284.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1285.                             wide array ColorSpec {
  1286.                                     integer;                                        /* value                */
  1287.                                     unsigned integer;                                /* RGB:    red                */
  1288.                                     unsigned integer;                                /*        green            */
  1289.                                     unsigned integer;                                /*        blue            */
  1290.                             };
  1291.                             Rect;                        /* srcRect */
  1292.                             Rect;                        /* destRect */
  1293.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1294.                                         notSrcCopy, notSrcOr, notSrcXor,
  1295.                                         notSrcBic, patCopy, patOr, patXor,
  1296.                                         patBic, notPatCopy, notPatOr, notPatBic,
  1297.                                         blend = 32, addPin, addOver, subPin,
  1298.                                         adMax = 37, subOver, adMin;
  1299.     BitsRectBits:            hex string [$$BitField(BitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1300.                                         ($$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1301.                                         - $$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1302.                         
  1303.                         
  1304.                         case BitsRgn:
  1305.                             key integer = $0091;
  1306.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1307.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1308.     BitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1309.     BitsRgnBounds2:            rect;                                                    /* Bitmap bounds        */
  1310.                             integer;                                                /* pixMap vers number    */
  1311.                             integer    unpacked;                                        /* Packing format        */
  1312.                             unsigned longint;                                        /* Size of pixel data    */
  1313.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1314.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1315.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1316.                             integer;                                                /* # bits in pixel        */
  1317.                             integer;                                                /* # components in pixel*/
  1318.                             integer;                                                /* # bits per field        */
  1319.                             unsigned longint;                                        /* Offset to next plane    */
  1320.                             unsigned longint;                                        /* Offset to color table*/
  1321.                             fill long;                                                /* Reserved                */
  1322.                             /* Color Table */
  1323.                             unsigned hex longint;                                    /* ctSeed                */
  1324.                             integer;                                                /* ctFlags                */
  1325.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1326.                             wide array ColorSpec {
  1327.                                     integer;                                        /* value                */
  1328.                                     unsigned integer;                                /* RGB:    red                */
  1329.                                     unsigned integer;                                /*        green            */
  1330.                                     unsigned integer;                                /*        blue            */
  1331.                             };
  1332.                             Rect;                        /* srcRect */
  1333.                             Rect;                        /* destRect */
  1334.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1335.                                         notSrcCopy, notSrcOr, notSrcXor,
  1336.                                         notSrcBic, patCopy, patOr, patXor,
  1337.                                         patBic, notPatCopy, notPatOr, notPatBic,
  1338.                                         blend = 32, addPin, addOver, subPin,
  1339.                                         adMax = 37, subOver, adMin;
  1340.     BitsRgnStart2:            integer = (BitsRgnEnd2[$$ArrayIndex(OpCodes)] - BitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1341.                             Rect;                /* region's enclosing rect */
  1342.                             hex string [$$Word(BitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1343.     BitsRgnEnd2:            hex string [$$PackedSize(BitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1344.                                         $$BitField(BitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1345.                                         ($$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1346.                                         - $$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1347.  
  1348.                         case AppleReserved0092:
  1349.                             key integer = $0092;
  1350.     AppleReserved0092Start:    unsigned integer = (AppleReserved0092End[$$ArrayIndex(OpCodes)] - AppleReserved0092Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1351.                             hex string [$$Word(AppleReserved0092Start[$$ArrayIndex(OpCodes)])];
  1352.     AppleReserved0092End:
  1353.                         case AppleReserved0093:
  1354.                             key integer = $0093;
  1355.     AppleReserved0093Start:    unsigned integer = (AppleReserved0093End[$$ArrayIndex(OpCodes)] - AppleReserved0093Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1356.                             hex string [$$Word(AppleReserved0093Start[$$ArrayIndex(OpCodes)])];
  1357.     AppleReserved0093End:
  1358.                         case AppleReserved0094:
  1359.                             key integer = $0094;
  1360.     AppleReserved0094Start:    unsigned integer = (AppleReserved0094End[$$ArrayIndex(OpCodes)] - AppleReserved0094Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1361.                             hex string [$$Word(AppleReserved0094Start[$$ArrayIndex(OpCodes)])];
  1362.     AppleReserved0094End:
  1363.                         case AppleReserved0095:
  1364.                             key integer = $0095;
  1365.     AppleReserved0095Start:    unsigned integer = (AppleReserved0095End[$$ArrayIndex(OpCodes)] - AppleReserved0095Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1366.                             hex string [$$Word(AppleReserved0095Start[$$ArrayIndex(OpCodes)])];
  1367.     AppleReserved0095End:
  1368.                         case AppleReserved0096:
  1369.                             key integer = $0096;
  1370.     AppleReserved0096Start:    unsigned integer = (AppleReserved0096End[$$ArrayIndex(OpCodes)] - AppleReserved0096Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1371.                             hex string [$$Word(AppleReserved0096Start[$$ArrayIndex(OpCodes)])];
  1372.     AppleReserved0096End:
  1373.                         case AppleReserved0097:
  1374.                             key integer = $0097;
  1375.     AppleReserved0097Start:    unsigned integer = (AppleReserved0097End[$$ArrayIndex(OpCodes)] - AppleReserved0097Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1376.                             hex string [$$Word(AppleReserved0097Start[$$ArrayIndex(OpCodes)])];
  1377.     AppleReserved0097End:
  1378.                         case PackBitsRect:
  1379.                             key integer = $0098;
  1380.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1381.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1382.     PackBitsRectpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1383.     PackBitsRectBounds2:    rect;                                                    /* Bitmap bounds        */
  1384.                             integer;                                                /* pixMap vers number    */
  1385.                             integer    unpacked;                                        /* Packing format        */
  1386.                             unsigned longint;                                        /* Size of pixel data    */
  1387.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1388.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1389.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1390.                             integer;                                                /* # bits in pixel        */
  1391.                             integer;                                                /* # components in pixel*/
  1392.                             integer;                                                /* # bits per field        */
  1393.                             unsigned longint;                                        /* Offset to next plane    */
  1394.                             unsigned longint;                                        /* Offset to color table*/
  1395.                             fill long;                                                /* Reserved                */
  1396.                             /* Color Table */
  1397.                             unsigned hex longint;                                    /* ctSeed                */
  1398.                             integer;                                                /* ctFlags                */
  1399.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1400.                             wide array ColorSpec {
  1401.                                     integer;                                        /* value                */
  1402.                                     unsigned integer;                                /* RGB:    red                */
  1403.                                     unsigned integer;                                /*        green            */
  1404.                                     unsigned integer;                                /*        blue            */
  1405.                             };
  1406.                             Rect;                        /* srcRect */
  1407.                             Rect;                        /* destRect */
  1408.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1409.                                         notSrcCopy, notSrcOr, notSrcXor,
  1410.                                         notSrcBic, patCopy, patOr, patXor,
  1411.                                         patBic, notPatCopy, notPatOr, notPatBic,
  1412.                                         blend = 32, addPin, addOver, subPin,
  1413.                                         adMax = 37, subOver, adMin;
  1414.     PackBitsRectBits:        hex string [$$PackedSize(PackBitsRectBits[$$ArrayIndex(OpCodes)],
  1415.                                         $$BitField(PackBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1416.                                         ($$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1417.                                         - $$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1418.                         
  1419.                         case PackBitsRgn:
  1420.                             key integer = $0099;
  1421.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1422.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1423.     PackBitsRgnpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1424.     PackBitsRgnBounds2:    rect;                                                        /* Bitmap bounds        */
  1425.                             integer;                                                /* pixMap vers number    */
  1426.                             integer    unpacked;                                        /* Packing format        */
  1427.                             unsigned longint;                                        /* Size of pixel data    */
  1428.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1429.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1430.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1431.                             integer;                                                /* # bits in pixel        */
  1432.                             integer;                                                /* # components in pixel*/
  1433.                             integer;                                                /* # bits per field        */
  1434.                             unsigned longint;                                        /* Offset to next plane    */
  1435.                             unsigned longint;                                        /* Offset to color table*/
  1436.                             fill long;                                                /* Reserved                */
  1437.                             /* Color Table */
  1438.                             unsigned hex longint;                                    /* ctSeed                */
  1439.                             integer;                                                /* ctFlags                */
  1440.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1441.                             wide array ColorSpec {
  1442.                                     integer;                                        /* value                */
  1443.                                     unsigned integer;                                /* RGB:    red                */
  1444.                                     unsigned integer;                                /*        green            */
  1445.                                     unsigned integer;                                /*        blue            */
  1446.                             };
  1447.                             Rect;                        /* srcRect */
  1448.                             Rect;                        /* destRect */
  1449.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1450.                                         notSrcCopy, notSrcOr, notSrcXor,
  1451.                                         notSrcBic, patCopy, patOr, patXor,
  1452.                                         patBic, notPatCopy, notPatOr, notPatBic,
  1453.                                         blend = 32, addPin, addOver, subPin,
  1454.                                         adMax = 37, subOver, adMin;
  1455.     packBitsRgnStart2:        integer = (packBitsRgnEnd2[$$ArrayIndex(OpCodes)] - packBitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1456.                             Rect;                /* region's enclosing rect */
  1457.                             hex string [$$Word(packBitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1458.     packBitsRgnEnd2:        hex string [$$PackedSize(packBitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1459.                                         $$BitField(PackBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1460.                                         ($$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1461.                                         - $$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1462.  
  1463.                         case AppleReserved009A:
  1464.                             key integer = $009A;
  1465.     AppleReserved009AStart:    unsigned integer = (AppleReserved009AEnd[$$ArrayIndex(OpCodes)] - AppleReserved009AStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1466.                             hex string [$$Word(AppleReserved009AStart[$$ArrayIndex(OpCodes)])];
  1467.     AppleReserved009AEnd:
  1468.                         case AppleReserved009B:
  1469.                             key integer = $009B;
  1470.     AppleReserved009BStart:    unsigned integer = (AppleReserved009BEnd[$$ArrayIndex(OpCodes)] - AppleReserved009BStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1471.                             hex string [$$Word(AppleReserved009BStart[$$ArrayIndex(OpCodes)])];
  1472.     AppleReserved009BEnd:
  1473.                         case AppleReserved009C:
  1474.                             key integer = $009C;
  1475.     AppleReserved009CStart:    unsigned integer = (AppleReserved009CEnd[$$ArrayIndex(OpCodes)] - AppleReserved009CStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1476.                             hex string [$$Word(AppleReserved009CStart[$$ArrayIndex(OpCodes)])];
  1477.     AppleReserved009CEnd:
  1478.                         case AppleReserved009D:
  1479.                             key integer = $009D;
  1480.     AppleReserved009DStart:    unsigned integer = (AppleReserved009DEnd[$$ArrayIndex(OpCodes)] - AppleReserved009DStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1481.                             hex string [$$Word(AppleReserved009DStart[$$ArrayIndex(OpCodes)])];
  1482.     AppleReserved009DEnd:
  1483.                         case AppleReserved009E:
  1484.                             key integer = $009E;
  1485.     AppleReserved009EStart:    unsigned integer = (AppleReserved009EEnd[$$ArrayIndex(OpCodes)] - AppleReserved009EStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1486.                             hex string [$$Word(AppleReserved009EStart[$$ArrayIndex(OpCodes)])];
  1487.     AppleReserved009EEnd:
  1488.                         case AppleReserved009F:
  1489.                             key integer = $009F;
  1490.     AppleReserved009FStart:    unsigned integer = (AppleReserved009FEnd[$$ArrayIndex(OpCodes)] - AppleReserved009FStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1491.                             hex string [$$Word(AppleReserved009FStart[$$ArrayIndex(OpCodes)])];
  1492.     AppleReserved009FEnd:
  1493.                         case ShortComment:
  1494.                             key integer = $00A0;
  1495.                             integer;                            /* comment kind */
  1496.                         
  1497.                         case LongComment:
  1498.                             key integer = $00A1;
  1499.                             integer;                            /* comment kind */
  1500.     longCommentStart2:        integer = (longCommentEnd2[$$ArrayIndex(OpCodes)] - longCommentStart2[$$ArrayIndex(OpCodes)] - 16) >> 3;
  1501.                             hex string [$$Word(longCommentStart2[$$ArrayIndex(OpCodes)])];
  1502.     longCommentEnd2:
  1503.                         case OpEndPic:
  1504.                             key integer = $00FF;
  1505.                         
  1506.                         case HeaderOp:
  1507.                             key integer = $0C00;
  1508.                             longint        Version2 = -1;
  1509.                             /* Fixed point bounding box */
  1510.                             unsigned hex longint;
  1511.                             unsigned hex longint;
  1512.                             unsigned hex longint;
  1513.                             unsigned hex longint;
  1514.                             longint        Version2 = -1;        /* Reserved */
  1515.                         
  1516.                     };
  1517.                     align word;
  1518.                 };
  1519.         };
  1520.     endOfPict:
  1521. };
  1522.  
  1523. #endif __PICT.R__
  1524.